package com.fd.wpx.authorizating.redis;

/**
 * 定义一个接口，用于redis集群版和单机版的切换
 */
public interface JedisClient {
    /**
     * 字符串操作，向redis中添加key+value
     * @param key
     * @param value
     * @return
     */
    public String set(String key, String value);

    /**
     * 字符串操作，获得key的字符串
     * @param key
     * @return
     */
    public String get(String key);
    /**
     * 字符串操作，删除某个key(单个key)
     * @param key
     * @return
     */
    public  Long del(String key);

    /**
     * 判断key是否存在
     * @param key
     * @return
     */
    public Boolean exists(String key);

    /**
     * 设置key的有效时间
     * @param key
     * @param seconds
     * @return
     */
    public Long expire(String key, int seconds);
    /**
     * 返回key的有效时间
     * @param key
     * @return
     */
    public Long ttl(String key);

    /**
     * 自动增长策略
     * @param key
     * @return
     */
    public Long incr(String key);

    /**
     * 哈希操作
     * @param key
     * @param field
     * @param value
     * @return
     */
    public Long hset(String key, String field, String value);

    /**
     * 哈希操作
     * @param key
     * @param field
     * @return
     */
    public String hget(String key, String field);

    /**
     * 哈希操作
     * @param key
     * @param field
     * @return
     */
    public Long hdel(String key, String... field);

    /**
     * 列表操作
     * @param key
     * @param field
     * @return
     */
    public Long lpush(String key, String ...field);

    /**
     * 移出列表中的值
     * @param key
     * @param count
     * @param value
     * @return
     */
    public Long lrem(String key,long count ,String value);
    /**
     * 获得列表的长度
     * @param key
     * @return
     */
    public Long llen(String key);
}
